package ymy;

public class GeneralConfig {

    public final static String randFileName = "ymy_randres.dat";
    public final static String specFileName = "ymy_specres.dat";

    // DEBUG标志位
    public final static boolean DEBUG_INFO = false;
    public final static boolean DEBUG_INIT = false;
    public final static boolean DEBUG_UPDATE = false;
    public final static boolean DEBUG_RELAY = false;
    public final static boolean DEBUG_SPFA = false;
    public final static boolean DEBUG_RESULT = false;
    public final static boolean DEBUG_HISTORY = false;
    public final static boolean DEBUG_CONNECTED = false;

    // 特定参数
    public final static double CORRECTION_FACTOR = 1.05;
    public final static double DOUBLE_MAX_VALUE = 99999.0;
    public final static int SPEED_CAPACITY = 500;

    // 车辆行驶方向
    public final static int UNKNOWN = 0;
    public final static int EAST = 1;
    public final static int SOUTH = 2;
    public final static int WEST = 3;
    public final static int NORTH = 4;

    // 道路方向
    public final static boolean SOUTH_NORTH = true;
    public final static boolean EAST_WEST = false;

    // 区域类型
    public final static int AREA_TYPE_CROSS = 1;
    public final static int AREA_TYPE_RSIDE = 2;

    // 建筑物参数
    public final static double BUILDING_HLEN = 860.0;
    public final static double BUILDING_VLEN = 1160.0;
    public final static double BUILDING_BORDER = 10.0;

    // 道路参数
    public final static double ROAD_HLEN = 900.0;
    public final static double ROAD_VLEN = 1200.0;
    public final static double ROAD_WIDTH = 20.0;

    // 区域参数
    public final static double PARK_GAP = 5.0;
    public final static double MOVE_GAP = 10.0;
    public final static double AREA_RADIUS = 120.0;
    public final static double FAILURE_DISTANCE = 240;

    // 车辆参数
    // 时速：10.8km/h - 90km/h
    public final static double VEHICLE_LOWER_SPEED = 3.0;
    public final static double VEHICLE_UPPER_SPEED = 20.0;

    // 处理时间
    public final static double VEHICLE_PARK_PTIME = 5.0;
    public final static double VEHICLE_MOVE_PTIME = 25.0;
    public final static double VEHICLE_WAIT_DELTA = 5;

    public final static double LINK_QUALITY_THRESHOLD = 0.30;

    // 车辆权重值
    public final static double PARK_WEIGHT = 0.7;
    public final static double MOVE_WEIGHT = 0.3;
    public final static double VEHICLE_GAIN = 0.9;

    // 时间序列长度
    public static int SEQUEN_LIMIT = 5;
    public static int SELECT_COUNT = 12;

    // 仿真类型
    public final static int MOVE_ONLY = 1;
    public final static int PARK_MOVE = 2;
    public static int SIMULATION_TYPE = PARK_MOVE;

    // 链路选择类型
    public final static int FD = 1;
    public final static int QP = 2;
    public final static int LD = 3;
    public static int LINK_SELECT_TYPE = LD;

    // 不连通参数
    public final static double UNDELAY = 300.0;
    public final static double UNHOP = 20.0;
    public final static double UNLQ = 0.00;
}
